/**
 * 商品列表页面控制器
 */
angular.module('goodsList.controller', ['goodsList.service'])
  .controller('GoodsListCtrl', function ($scope, GoodsListFty, $stateParams, $ionicLoading, $ionicHistory , $ionicSideMenuDelegate) {
    // 和前台页面绑定的数据对象
    $scope.obj_goodsListData = [];
    // 判断有没有更多数据可以加载
    $scope.pms_isMoreItemsAvailable = true;
    // 分页查询对象
    $scope.obj_pagingInfo = {
      pageNum: 1,// 当前页码
      pageSize: 5, // 每页显示的数量
      typeNumber: "",//用于存放商品分类传递过来的商品分类编号
      name: ""
    };
    //进入view时触发
    $scope.$on('$ionicView.enter', function (e) {
      getGoodsListData(100);
      $scope.getGoodsListDetailData();
    });
    //获取侧边栏数据
    var message = JSON.stringify($stateParams);
    // console.log(message);
    function getGoodsListData() {
      var promise = GoodsListFty.getGoodsListData(message);
      promise.then(
        // 成功的回调函数
        function (data) {
          console.log(data);
          if (data) {
            $scope.goodsListData = data;
            // console.log($scope.goodsListData);
          }
        });
    }
    //获取侧边菜单对应的分类信息数据
    $scope.getGoodsListDetailData = function (item) {
      // 修改分页信息对象
      $scope.obj_pagingInfo.pageNum = 1;
      //接收商品分类传递过来的参数typeNumber，放到分页信息对象中传递给Service
      $scope.obj_pagingInfo.typeNumber = $stateParams.typeNumber;
      var message = JSON.stringify($scope.obj_pagingInfo);
      console.log(">>>>", item);
      if (typeof item === "undefined") {
        var promise = GoodsListFty.getGoodsListDetailData($stateParams.typeNumber);
      } else {
        var promise = GoodsListFty.getGoodsListDetailData(item.shopNumber, item.typeNumber);
      }
      promise.then(
        // 成功的回调函数
        function (data) {
          if (data) {
            $scope.pms_isMoreItemsAvailable = true;
            $scope.goodsListDetailData = data;
            console.log(data);
          }
        }).finally(function () {
          // 停止广播ion-refresher
          $scope.$broadcast('scroll.refreshComplete');
        });;
    }
    // 左侧分类单击样式修改
    $scope.goodsListLeftClick = function (e) {
      e.target.className = 'nav-current';
      $(e.target).siblings().removeClass().addClass('nav-blur');
    };

    /*
      // 下拉刷新数据的方法
      $scope.func_refreshGoodsList = function () {
        console.log($stateParams);
        // 修改分页信息对象
        $scope.obj_pagingInfo.pageNum = 1;
        //接收商品分类传递过来的参数typeNumber，放到分页信息对象中传递给Service
        // console.log(JSON.stringify($stateParams));
        // console.log($stateParams);
        $scope.obj_pagingInfo.typeNumber = $stateParams.typeNumber;
        $scope.obj_pagingInfo.name = $stateParams.name;
        var message = JSON.stringify($scope.obj_pagingInfo);
        var promise = GoodsListFty.refreshGoodsList(message);
        promise.then(
          // 成功的回调函数
          function (data) {
            if (data) {
              $scope.pms_isMoreItemsAvailable = true;
              $scope.obj_goodsListData = data;
            }
          },
          // 失败的回调函数
          function (reason) {
            console.log(reason);
          }
        ).finally(function () {
          // 停止广播ion-refresher
          $scope.$broadcast('scroll.refreshComplete');
        });
      }*/
    // 上拉加载更多数据的方法
    $scope.func_loadMoreGoodsList = function () {
      //显示载入指示器
      $ionicLoading.show({
        template: '正在请求数据...'
      });
      // 修改分页信息对象，并把数据变为字符串传递到service
      $scope.obj_pagingInfo.typeNumber = $stateParams.typeNumber;
      $scope.obj_pagingInfo.pageNum++;
      var message = JSON.stringify($scope.obj_pagingInfo);
      var promise = GoodsListFty.loadMoreGoodsList(message);
      promise.then(
        // 成功的回调函数
        function (data) {
          // 判断返回来是否有数据，代码健壮性判断
          if (data) {
            //模拟第加载2次上拉加载后就没有更多数据了
            if ($scope.obj_pagingInfo.pageNum == 3) {
              $scope.pms_isMoreItemsAvailable = false;
            }
            $.each(data, function (i, item) {
              $scope.obj_goodsListData.push(item);
            });
          }
        },
        // 失败的回调函数
        function (reason) {
          console.log(reason);
        }
      ).finally(function () {
        // 停止广播
        $scope.$broadcast('scroll.infiniteScrollComplete');
        setTimeout(function () {
          //关闭载入指示器
          $ionicLoading.hide();
        }, 500);
      });
    }

    // 返回前一个页面
    $scope.func_goBack = function () {
      $ionicHistory.goBack();
    }

    $scope.toggleRight = function () {
      $ionicSideMenuDelegate.toggleRight();
      console.log("点了");
    }
  });
